// 引入封装的http工具
var http = require('../../../utils/https.js');

Page({
  data: {
    detailList: [], // 余额明细列表
    pageNum: 1,     // 当前页码
    pageSize: 10,   // 每页条数
    total: 0,       // 总条数
    loading: false, // 加载状态
    hasMore: true,  // 是否有更多数据
    userId: null    // 用户ID，实际项目中从登录信息获取
  },

  onLoad(options) {
    // 从登录信息或选项中获取用户ID
    this.setData({
      userId: options.userId || wx.getStorageSync('userInfo.userId')
    });
    
    // 首次加载数据
    this.getBalanceDetails();
  },

  // 下拉刷新
  onPullDownRefresh() {
    // 重置分页参数
    this.setData({
      pageNum: 1,
      detailList: [],
      hasMore: true
    });
    
    // 重新加载数据
    this.getBalanceDetails(() => {
      wx.stopPullDownRefresh(); // 停止下拉刷新动画
    });
  },

  // 上拉加载更多
  onReachBottom() {
    // 如果还有更多数据且不在加载中，则加载下一页
    if (this.data.hasMore && !this.data.loading) {
      this.setData({
        pageNum: this.data.pageNum + 1
      });
      this.getBalanceDetails();
    }
  },

  // 获取余额明细
  getBalanceDetails(callback) {
    const { userId, pageNum, pageSize } = this.data;
    
    if (!userId) {
      wx.showToast({
        title: '用户ID不存在',
        icon: 'none'
      });
      return;
    }
    
    this.setData({ loading: true });
    
    // 构造请求参数，包含分页信息
    const data = {
      pageNum: pageNum,
      pageSize: pageSize
    };
    
    // 使用封装的GET请求
    http.GET(`/point_Detail/point_Detail/getUserId/${userId}`, data, 
      (res) => {
        // 请求成功的回调处理
        if (res.code === 200) {
          const newList = res.rows || [];
          const total = res.total || 0;
          
          // 合并数据列表
          const detailList = pageNum === 1 
            ? newList 
            : [...this.data.detailList, ...newList];
          
          // 判断是否还有更多数据
          const hasMore = detailList.length < total;
          
          this.setData({
            detailList,
            total,
            hasMore,
            loading: false
          });
        } else {
          wx.showToast({
            title: res.msg || '获取数据失败',
            icon: 'none'
          });
          this.setData({ loading: false });
        }
        
        // 执行回调（如果有）
        if (typeof callback === 'function') {
          callback();
        }
      }, 
      (err) => {
        // 请求失败的回调处理
        console.error('获取余额明细失败', err);
        wx.showToast({
          title: '网络请求失败',
          icon: 'none'
        });
        this.setData({ loading: false });
        
        // 执行回调（如果有）
        if (typeof callback === 'function') {
          callback();
        }
      }
    );
  }
});
